NOVELL TECHNICAL DISCUSSION (Note: The origin of this information may be internal or external to Novell. Novell makes every effort within its means to verify this information. However, the information provided in this Novell Technical Discussion is FOR YOUR INFORMATION only. Novell makes no explicit or implied claims to the validity of this information.) TITLE: Printing and the Serial Interface DOCUMENT ID#: TD.P.2 DATE: April 6, 1992 PRODUCT: NetWare PRODUCT VERSION: All SUPERSEDES: N/A SYMPTOM: None Serial printing on the Novell network has on occasion been a source of difficulty. Much of this difficulty is overcome with an understanding of the serial handshaking scheme. The purpose of this document is to improve that understanding. Serial printers in the DOS world take advantage of the RS-232-C interface standard. This interface was developed specifically for terminal to modem communications or DTE to DCE (Data Terminal Equipment to Data Communication Equipment). As PC's and printers both consider themselves to be DTE, each have to be "tricked" into thinking that they are communicating with DCE on the other side. Now, if all printers did this in the same way, a standard cable could be used to interface all printers with all PC's and the world would be a happy place. However, since the world is not perfect, and printer vendors have decided to implement handshaking in various ways, the following is the optimal cable pin-out. Explanatory notes referring to the reference numbers in this diagram are listed below. PC Printer 9 pin 25 pin 25 pin -- 1 (1) FG 1 3 2 (2) >DDDDDD? TXD ZDDDDD< 2 @DDDDDDD? 3 ZDDDDDDDDDDDDEDDY 2 3 (3) 3 7 4 (4) ^ RTS ^ 4 (10) >? 3 8 5 (5) 20 (11) (Handshaking) (1) Frame Ground. Not necessary and, in fact, may cause ground loop problems if PC and printer are connected to different power sources. (2) Transmit Data (output). The PC sends data to the printer via this pin. (3) Receive Data (input). The PC can receive data from the printer on this pin. This is used for XON/XOFF (software) handshaking. If XON/XOFF is used, the PC needs only pins 2, 3, and 7 to function properly. (4) Request To Send (output). This pin is brought high (^) and kept in that state. Some printers use this pin to enable an input on the printer. The print server and rprinter, until version 1.22R, dropped this signal when no data was being sent to the printer. This process has been the cause of many problems. Versions 1.22R and later were changed to hold this pin high at all times. Our recommendation is to avoid the use of this pin. (5) Clear To Send (input). This is the pin we use for hardware handshaking. If pin 5 is high, we send data to the printer. If pin 5 is low, we stop sending data. If pin 5 stays low for about 10 seconds, we report the "OFF LINE" condition. It is necessary to connect the pin on the printer that the printer uses for signaling a "don't send" condition to the PC to this pin. This is pin 20 for DTR handshaking but vendors commonly use other pins for their handshaking. If hardware handshaking is being used, pins 2, 5, and 7 are the only pins we need to function properly. (6) Data Set Ready (input). We don't use this pin. However, DOS needs both pins 5 and 6 to be high to send data to the printer, so the recommendation is to tie pins 5 and 6 together to provide DOS compatibility. (7) Signal Ground. This is needed to provide a reference for the signal levels. (8) Data Carrier Detect (input). Not used. Should be not connected (NC). (9) Data Terminal Ready (output). See note four (4). (10) When the printer is powered on, pin 4 on the printer is pulled high and kept high (^). It can be used, therefore, to enable input pins that, on some printers, may be used to control the receive pin (pin 3) on the printer. The recommendation is to tie this pin to pins 5, 6, and 8. This may not work on all printers. (11) Pin 20 on the printer is often used for the handshaking signal. If the printer supports DTR handshaking it should be using pin 20. Many printers use other pins; pins 11, and 19 being very popular. This pin-out is not the panacea for all serial printing handshaking problems, but it should work as the interface for most printers.